package last.tomsquare;


import java.util.*;

import common.totalInfo.R;



import android.app.*;
import android.content.*;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;

public class Explore extends Activity {
	ArrayList<ListItem> arItem;
	
	ImageButton mapbtn;
	
	/** Called when the activity is first created. */
	@Override 
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.cha_ex);
	    // TODO Auto-generated method stub
	    
//        //데이터 원본 준비
//        ArrayList<String> arGeneral=new ArrayList<String>();
//        arGeneral.add("김유신");
//        arGeneral.add("이순신");
//        arGeneral.add("차종환");
//        arGeneral.add("융어츠곰");
//        arGeneral.add("강감찬");
//        arGeneral.add("을지문덕");
//        
//        //어댑터 준비
//        ArrayAdapter<String> Adapter;
//        Adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arGeneral);
//        
//        //어댑터 연결
//        ListView list=(ListView)findViewById(R.id.list);
//        list.setAdapter(Adapter);
	    arItem = new ArrayList<ListItem>();
//        arItem.add(new ListItem(0,"제목","입력내용","",0));
	    arItem.add(new ListItem(0,"이름을 입력하시오.","","Try 'Bank'","",0));
	    arItem.add(new ListItem(1,"","","","",R.drawable.icon));
       
        arItem.add(new ListItem(2,"  Recommended within 3 km (30 places) ","","","",0));
        arItem.add(new ListItem(3,"  You've been here 1 time","","","",0));
        
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m91));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m92));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m93));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m94));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m95));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m96));
        
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m97));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m98));
        arItem.add(new ListItem(4,"STARBUCKS COFFEE","금천구 가산동 371-28(우림라이온스벨리)","","",R.drawable.m99));
//        arItem.add(new ListItem(1,"","","업로드",R.drawable.icon));
//        arItem.add(new ListItem(0,"주소","어디 사니?","",0));

        MultiAdapter MyAdapter = new MultiAdapter(this, arItem);
        
        ListView MyList;
        MyList=(ListView)findViewById(R.id.list);
        MyList.setAdapter(MyAdapter);
        
        
        // 여기서 부터는 맵버튼 리스너
        
//        mapbtn = (ImageButton)findViewById(R.id.mapbtn2);
//	    mapbtn.setOnClickListener(mOnClick);
        
	}
	
//	 private View.OnClickListener mOnClick = new View.OnClickListener()
//	 {
//			
//			@Override
//			public void onClick(View v) 
//			{
//				// TODO Auto-generated method stub
//				Intent j = new Intent(Cha_ViewLocation, null);
//				startActivity(j);
//			}
//	 };

}


class ListItem {
	ListItem(int aType, String aText, String bText, String aEditText, String aBtnText, int aIconRes) {
		Type = aType;
		Text = aText;
		Text2 = bText;
		EditText = aEditText;
		BtnText = aBtnText;
		IconRes = aIconRes;
	}
	int Type;
	String Text;
	String Text2;
	String EditText;
	String BtnText;
	int IconRes;
}

class MultiAdapter extends BaseAdapter {
	LayoutInflater mInflater;
	ArrayList<ListItem> arSrc;

	public MultiAdapter(Context context, ArrayList<ListItem> arItem) {
		mInflater = (LayoutInflater)context.getSystemService(
				Context.LAYOUT_INFLATER_SERVICE);
		arSrc = arItem;
	}

	public int getCount() {
		return arSrc.size();
	}

	public ListItem getItem(int position) {
		return arSrc.get(position);
	}


	public long getItemId(int position) {
		return position;
	}
	
	public int getItemViewType(int position) {
		return arSrc.get(position).Type;
	}
	
	// getView가 생성하는 뷰의 개수를 리턴한다. 항상 같은 뷰를 생성하면 1을 리턴한다.
	// 이 메소드에서 개수를 제대로 조사해 주지 않으면 다운된다.
	public int getViewTypeCount() {
		return 5;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		// 최초 호출이면 항목 뷰를 생성한다. 
		// 타입별로 뷰를 다르게 디자인할 수 있으며 높이가 달라도 상관없다.
		if (convertView == null) {
			int res = 0;
			switch (arSrc.get(position).Type) {
			case 0:
				res = R.layout.cha_textedit;
				break;
			case 1:
				res = R.layout.cha_btnicon;
				break;
			case 2:
				res = R.layout.cha_textview;
				break;
			case 3:
				res = R.layout.cha_textview2;
				break;
			
			case 4:
				res = R.layout.cha_lv;
				break;
			}
			convertView = mInflater.inflate(res, parent, false);
		}
		
		// 항목 뷰를 초기화한다.
		switch (arSrc.get(position).Type) {
		case 0:
			
			EditText edit = (EditText)convertView.findViewById(R.id.edit);
			edit.setText(arSrc.get(position).EditText);
			break;
		case 1:
//			ImageButton btn = (ImageButton)convertView.findViewById(R.id.img1);
//			btn.setText(arSrc.get(position).BtnText);
//			TextView txt = (TextView)convertView.findViewById(R.id.text);
//			txt.setText(arSrc.get(position).Text);
	//		ImageView img = (ImageView)convertView.findViewById(R.id.img);
	//		img.setImageResource(arSrc.get(position).IconRes);
			break;
		case 2:
			
			TextView txt = (TextView)convertView.findViewById(R.id.text);
			txt.setText(arSrc.get(position).Text);
			break;
		case 3:
			
			TextView txt2 = (TextView)convertView.findViewById(R.id.text);
			txt2.setText(arSrc.get(position).Text);
			break;
		case 4:
			
			ImageView img = (ImageView)convertView.findViewById(R.id.img);
			img.setImageResource(arSrc.get(position).IconRes);
			TextView txt3 = (TextView)convertView.findViewById(R.id.text);
			txt3.setText(arSrc.get(position).Text);
			TextView txt4 = (TextView)convertView.findViewById(R.id.text2);
			txt4.setText(arSrc.get(position).Text2);
			break;
		}

		return convertView;
	}
}
